602C - The Two Routes - CodeForces Solution


graphs *1600

Please click on ads to support us..

Python Code:

import collections
n,r=map(int,input().split())
train={i:[] for i in range(1,n+1)}
bus={i:[j for j in range(1,n+1) if j!=i] for i in range(1,n+1)}
for i in range(r):
    a,b=map(int,input().split())
    train[a].append(b)
    train[b].append(a)
    bus[a].remove(b)
    bus[b].remove(a)
def bfs(s,dic):
    q=collections.deque([[s,0]])
    vis=set([s])
    t=-1
    while q:
        a,b=q.popleft()
        if a==n:
            t=b
            break
        for i in dic[a]:
            if i not in vis:
              vis.add(i)
              q.append([i,b+1])
    return t

a=(bfs(1,train))
b=(bfs(1,bus))
if a<0 or b<0:
    print(-1)
else:
    print(max(a,b))


Comments

Submit
0 Comments
More Questions

429. N-ary Tree Level Order Traversal
739. Daily Temperatures
647. Palindromic Substrings
583. Delete Operation for Two Strings
518. Coin Change 2
516. Longest Palindromic Subsequence
468. Validate IP Address
450. Delete Node in a BST
445. Add Two Numbers II
442. Find All Duplicates in an Array
437. Path Sum III
436. Find Right Interval
435. Non-overlapping Intervals
406. Queue Reconstruction by Height
380. Insert Delete GetRandom O(1)
332. Reconstruct Itinerary
368. Largest Divisible Subset
377. Combination Sum IV
322. Coin Change
307. Range Sum Query - Mutable
287. Find the Duplicate Number
279. Perfect Squares
275. H-Index II
274. H-Index
260. Single Number III
240. Search a 2D Matrix II
238. Product of Array Except Self
229. Majority Element II
222. Count Complete Tree Nodes
215. Kth Largest Element in an Array